The present invention relates to data processing by digital computer, and more particularly to information exchange over a communications network.
Web services (sometimes also referred to as application services) are services that are typically made available over an internet from a business's web server for web users or other web-connected computer software applications. Providers of web services are generally known as application service providers. Web services range from comprehensive services, such as storage management and customer relationship management, to much more limited services, such as the furnishing of stock quotes and the checking of bids for an auction item.
Web services can be accessed through a peer-to-peer arrangements or through central servers. Some web services can communicate with other services. This exchange of procedures and data is generally enabled by a class of software applications known as middleware. At present, the number of web services is steadily increasing, as services previously possible only with the standardized service Electronic Data Interchange (EDI) now are transformed into web services. Besides the standardization and wide availability to users and businesses of the Internet itself, web services are also increasingly enabled by the use of the Extensible Markup Language (XML) as a means of standardizing data formats and exchanging data. XML is the foundation for the Web Services Description Language (WSDL).
Web service providers and consumers of web services are typically businesses, making web service transactions predominantly business-to-business (B-to-B) transactions. An enterprise can both be a provider of one or more web services and also be a consumer of other web services. For example, a wholesale distributor of spices could assume a consumer role when the distributor uses a web service to check on the availability of vanilla beans, whereas the same distributor can assume a provider role when supplying prospective customers with different vendors' prices for vanilla beans.
An important challenge when designing and implementing software applications for businesses that use web services is the implementation of functionality for identifying a resource (such as a web service) that best matches a given software application's needs at a certain point in time. Large volumes of data are made available by web services on the Internet. However, if business software applications are to access and make efficient use of these services, there are several issues that need to be considered: such as, how to identify web services; how to find the best match for a specific request; how to get access to the services that best match a specific request; and, how to cooperate better with other software applications and services.